package web.offreproduit;

import java.util.List;

import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;

import persistence.util.HibernateUtil;
import persistence.utilisateur.Fournisseur;
import persistence.offre.OffreDeProduit;

import web.Template;

/**
 * 
 * @author Guillaume
 *
 */
public class ListeOffresFournisseur extends Template {
	
	private Query query;
	private List listOffresQuery;
	ListView<OffreDeProduit> listeProduit;
	
	private static final String VALEUR_TITRE="Liste de vos offres";
	
	public ListeOffresFournisseur(Fournisseur currentFournisseur)
	{
		super();
		// Récupération des Offres de Produits du fournisseur actuellement connecté !
		SessionFactory sf = HibernateUtil.getSessionFactory();
		Session session = sf.openSession();
		query = session.createQuery("Select o from OffreDeProduit o where fournisseur = :code");
		int idFourni = currentFournisseur.getId();
		query.setParameter("code", currentFournisseur);
		listOffresQuery = query.list();
		session.close();
		
		listeProduit = new ListView<OffreDeProduit>("listeoffres", listOffresQuery)
		{
			public void populateItem(ListItem item)
			{
				OffreDeProduit currentOffre =(OffreDeProduit) item.getModelObject();
				item.add(new Label("libelle", currentOffre.getLibelle()));
				item.add(new Label("prix", currentOffre.getPrix()));
				item.add(new Label("qte", currentOffre.getQte()));
				item.add(new Label("date", currentOffre.getDate().toString()));
				item.add(new Label("RAM", currentOffre.getRAM()));
				item.add(new Label("poids", currentOffre.getPoids()));
				// AFFICHAGE VALIDATION(previligier un code simple avec legende en HTML en bas de tableau)
				if(currentOffre.getValidation() == 0)
				{
					item.add(new Label("validation", "NOK"));
				}
				else {
					item.add(new Label("validation", "OK"));
				}
				item.add(new Label("accessoire", currentOffre.getAccessoire().getLibelle()));
				item.add(new Label("couleur", currentOffre.getCouleur().getLibelle()));
				item.add(new Label("marque", currentOffre.getMarque().getLibelle()));
				item.add(new Label("stockage", currentOffre.getStockage().getLibelle()));
				item.add(new Label("systemeExploitation", currentOffre.getSystemeExploitation().getLibelle()));
				item.add(new Label("taille", currentOffre.getTaille().getLibelle()));
			}
		};
		add(new Label("titre", VALEUR_TITRE));
		add(listeProduit);
	}

}
